package com.ft.adbix.utils.data.synchronize.entity;

import androidx.annotation.Keep;

/**
 * 全面的设备信息数据
 */
@Keep
public class DeviceData {
    /**
     * 手机系统：1:安卓; 2:iOS;
     */
    private int os;
    /**
     * 屏幕宽度
     */
    private int screenWidth;
    /**
     * 屏幕高度
     */
    private int screenHeight;
    /**
     * 运营商识别码
     */
    private String imsi = "";

    /**
     * 浏览器的user-agent
     */
    private String userAgent = "";
    /**
     * 网络类型
     */
    private String network = "";
    /**
     * 屏幕每英寸像素数目
     */
    private int ppi = 0;
    /**
     * 屏幕尺寸
     */
    private double inch;
    /**
     * 屏幕方向
     */
    private String orientation = "PORTRAIT";
    /**
     * IMEI号
     */
    private String imei = "";
    private String md5Imei = "";
    /**
     * 手机操作系统版本号
     */
    private String osVersion = "";
    /**
     * 手机生产厂商
     */
    private String vendor = "";
    /**
     * 手机型号
     */
    private String modelNo = "";
    /**
     * 设备名称
     */
    private String phoneName = "";
    /**
     * 手机容量大小
     */
    private long diskSize = 0L;
    /**
     * 手机内存大小
     */
    private long memorySize = 0L;

    private String androidId = "";
    private String md5AndroidId = "";
    /**
     * 纬度
     */
    private double latitude;
    /**
     * 经度
     */
    private double longitude;
    /**
     * ipv4地址
     */
    private String ip = "";
    /**
     * ipv6
     */
    private String ipV6 = "";

    /**
     * 设备类型 5 - pad ， 4 - 手机
     */
    private String deviceType;
    /**
     * Android apiLevel
     */
    private int androidApiLevel;
    /**
     * mac地址
     */
    private String mac = "";
    /**
     * macMd5
     */
    private String macMD5 = "";
    /**
     * 设备的语言设置
     */
    private String language = "";
    /**
     * 设备电量百分比，取整数，数值区间0~100。
     */
    private int batteryPower;
    /**
     * 电池状态
     * UNKNOWN:未知
     * UNPLUGGED:不充电
     * CHARGING:充电中
     */
    private String batteryStatus = "";
    /**
     * cpu个数
     */
    private int cpuNumber = 0;
    /**
     * cpu频率，单位GHz
     */
    private float cpuFrequency = 0;

    /**
     * 国家
     */
    private String country = "";

    /**
     * 已安装应用包名列表
     */
    private String[] installApps = null;

    private String oaid = "";

    private String md5Oaid = "";

    private String vaid = "";

    /**
     * 系统启动标识
     */
    private String osBootMark = "";

    /**
     * 系统启动时间
     */
    private long osBootTime = 0L;

    /**
     * 系统更新标识
     */
    private String osUpdateMark = "";

    public long getOsElapseTime() {
        return osElapseTime;
    }

    public void setOsElapseTime(long osElapseTime) {
        this.osElapseTime = osElapseTime;
    }

    /**
     * 系统开机使用时间
     */
    private long osElapseTime = 0L;

    /**
     * 时区
     */
    private String timezone = "";
    /**
     * 官方商城版本号
     */
    private String storeVersion = "";

    /**
     * 华为hms core版本
     */
    private String hmsVersion = "";

    /**
     * 鸿蒙系统内核版本
     */
    private String harmonyOsVer = "";

    /**
     * 小米MIUI版本/华为UI版本
     */
    private String osUiVersion = "";
    private boolean supportWechat = false;

    public int getOs() {
        return os;
    }

    public void setOs(int os) {
        this.os = os;
    }

    public String getTimezone() {
        return timezone;
    }

    public void setTimezone(String timezone) {
        this.timezone = timezone;
    }

    public String getOaid() {
        return oaid;
    }

    public void setOaid(String oaid) {
        this.oaid = oaid;
    }

    public String getVaid() {
        return vaid;
    }

    public void setVaid(String vaid) {
        this.vaid = vaid;
    }

    public String getDeviceType() {
        return deviceType;
    }

    public void setDeviceType(String deviceType) {
        this.deviceType = deviceType;
    }

    public String getLanguage() {
        return language;
    }

    public void setLanguage(String language) {
        this.language = language;
    }

    public int getBatteryPower() {
        return batteryPower;
    }

    public void setBatteryPower(int batteryPower) {
        this.batteryPower = batteryPower;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public int getScreenWidth() {
        return screenWidth;
    }

    public void setScreenWidth(int screenWidth) {
        this.screenWidth = screenWidth;
    }

    public int getScreenHeight() {
        return screenHeight;
    }

    public void setScreenHeight(int screenHeight) {
        this.screenHeight = screenHeight;
    }

    public String getImsi() {
        return imsi;
    }

    public void setImsi(String imsi) {
        this.imsi = imsi;
    }

    public String getUserAgent() {
        return userAgent;
    }

    public void setUserAgent(String userAgent) {
        this.userAgent = userAgent;
    }

    public String getNetwork() {
        return network;
    }

    public void setNetwork(String network) {
        this.network = network;
    }

    public String getImei() {
        return imei;
    }

    public void setImei(String imei) {
        this.imei = imei;
    }

    public String getOsVersion() {
        return osVersion;
    }

    public void setOsVersion(String osVersion) {
        this.osVersion = osVersion;
    }

    public String getVendor() {
        return vendor;
    }

    public void setVendor(String vendor) {
        this.vendor = vendor;
    }

    public String getModelNo() {
        return modelNo;
    }

    public void setModelNo(String modelNo) {
        this.modelNo = modelNo;
    }

    public String getAndroidId() {
        return androidId;
    }

    public void setAndroidId(String androidId) {
        this.androidId = androidId;
    }

    public double getLatitude() {
        return latitude;
    }

    public void setLatitude(double latitude) {
        this.latitude = latitude;
    }

    public double getLongitude() {
        return longitude;
    }

    public void setLongitude(double longitude) {
        this.longitude = longitude;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public int getPpi() {
        return ppi;
    }

    public void setPpi(int ppi) {
        this.ppi = ppi;
    }

    public double getInch() {
        return inch;
    }

    public void setInch(double inch) {
        this.inch = inch;
    }

    public String getOrientation() {
        return orientation;
    }

    public void setOrientation(String orientation) {
        this.orientation = orientation;
    }

    public String getMd5Imei() {
        return md5Imei;
    }

    public void setMd5Imei(String md5Imei) {
        this.md5Imei = md5Imei;
    }

    public String getPhoneName() {
        return phoneName;
    }

    public void setPhoneName(String phoneName) {
        this.phoneName = phoneName;
    }

    public long getDiskSize() {
        return diskSize;
    }

    public void setDiskSize(long diskSize) {
        this.diskSize = diskSize;
    }

    public long getMemorySize() {
        return memorySize;
    }

    public void setMemorySize(long memorySize) {
        this.memorySize = memorySize;
    }

    public String getMd5AndroidId() {
        return md5AndroidId;
    }

    public void setMd5AndroidId(String md5AndroidId) {
        this.md5AndroidId = md5AndroidId;
    }

    public String getIpV6() {
        return ipV6;
    }

    public void setIpV6(String ipV6) {
        this.ipV6 = ipV6;
    }

    public int getAndroidApiLevel() {
        return androidApiLevel;
    }

    public void setAndroidApiLevel(int androidApiLevel) {
        this.androidApiLevel = androidApiLevel;
    }

    public String getMac() {
        return mac;
    }

    public void setMac(String mac) {
        this.mac = mac;
    }

    public String getMacMD5() {
        return macMD5;
    }

    public void setMacMD5(String macMD5) {
        this.macMD5 = macMD5;
    }

    public String getBatteryStatus() {
        return batteryStatus;
    }

    public void setBatteryStatus(String batteryStatus) {
        this.batteryStatus = batteryStatus;
    }

    public int getCpuNumber() {
        return cpuNumber;
    }

    public void setCpuNumber(int cpuNumber) {
        this.cpuNumber = cpuNumber;
    }

    public float getCpuFrequency() {
        return cpuFrequency;
    }

    public void setCpuFrequency(float cpuFrequency) {
        this.cpuFrequency = cpuFrequency;
    }

    public String[] getInstallApps() {
        return installApps;
    }

    public void setInstallApps(String[] installApps) {
        this.installApps = installApps;
    }

    public String getMd5Oaid() {
        return md5Oaid;
    }

    public void setMd5Oaid(String md5Oaid) {
        this.md5Oaid = md5Oaid;
    }

    public String getStoreVersion() {
        return storeVersion;
    }

    public void setStoreVersion(String storeVersion) {
        this.storeVersion = storeVersion;
    }

    public String getHmsVersion() {
        return hmsVersion;
    }

    public void setHmsVersion(String hmsVersion) {
        this.hmsVersion = hmsVersion;
    }

    public String getHarmonyOsVer() {
        return harmonyOsVer;
    }

    public void setHarmonyOsVer(String harmonyOsVer) {
        this.harmonyOsVer = harmonyOsVer;
    }

    public String getOsUiVersion() {
        return osUiVersion;
    }

    public void setOsUiVersion(String osUiVersion) {
        this.osUiVersion = osUiVersion;
    }

    public boolean isSupportWechat() {
        return supportWechat;
    }

    public void setSupportWechat(boolean supportWechat) {
        this.supportWechat = supportWechat;
    }

    @Override
    public String toString() {
        return "DeviceData{" +
                "screenWidth=" + screenWidth +
                ", screenHeight=" + screenHeight +
                ", imsi='" + imsi + '\'' +
                ", userAgent='" + userAgent + '\'' +
                ", network='" + network + '\'' +
                ", ppi=" + ppi +
                ", inch=" + inch +
                ", orientation='" + orientation + '\'' +
                ", imei='" + imei + '\'' +
                ", md5Imei='" + md5Imei + '\'' +
                ", osVersion='" + osVersion + '\'' +
                ", vendor='" + vendor + '\'' +
                ", modelNo='" + modelNo + '\'' +
                ", phoneName='" + phoneName + '\'' +
                ", diskSize=" + diskSize +
                ", memorySize=" + memorySize +
                ", androidId='" + androidId + '\'' +
                ", md5androidId='" + md5AndroidId + '\'' +
                ", latitude=" + latitude +
                ", longitude=" + longitude +
                ", ip='" + ip + '\'' +
                ", ipV6='" + ipV6 + '\'' +
                ", deviceType=" + deviceType +
                ", mac='" + mac + '\'' +
                ", macMD5='" + macMD5 + '\'' +
                ", language='" + language + '\'' +
                ", batteryPower=" + batteryPower +
                ", batteryStatus='" + batteryStatus + '\'' +
                ", cpuNumber=" + cpuNumber +
                ", cpuFrequency=" + cpuFrequency +
                ", country='" + country + '\'' +
                ", installApps=" + installApps +
                ", oaid='" + oaid + '\'' +
                ", md5Oaid='" + md5Oaid + '\'' +
                ", vaid='" + vaid + '\'' +
                ", osBootMark='" + osBootMark + '\'' +
                ", osUpdateMark='" + osUpdateMark + '\'' +
                ", osElapseTime='" + osElapseTime + '\'' +
                ", timezone='" + timezone + '\'' +
                ", storeVersion='" + storeVersion + '\'' +
                ", hmsVersion='" + hmsVersion + '\'' +
                ", harmonyOsVer='" + harmonyOsVer + '\'' +
                ", osUiVersion='" + osUiVersion + '\'' +
                ", supportWechat=" + supportWechat +
                '}';
    }

    public long getOsBootTime() {
        return osBootTime;
    }

    public void setOsBootTime(long osBootTime) {
        this.osBootTime = osBootTime;
    }
}
